package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.exception.*;

import java.sql.SQLException;
import java.text.ParseException;
import java.util.Map;

/**
 * 预约服务
 */
public interface OrderService {
    /**
     * 完成预约套餐功能（只包含一个套餐）
     * @param map
     * @return
     */
    void order(Map map) throws ParseException, OrderDateNullException, OrderNotAllowedException, OrderFullException, OrderRepeatedException;


    /**
     * 完成预约套餐功能（多个套餐套餐）
     * @param map
     * @return
     */
    void orderMany(Map map,String[] setmealIds) throws ParseException, SQLException, OrderFullException, OrderDateNullException, OrderNotAllowedException, OrderRepeatedException;


    /**
     * 根据预约id查询预约的详细信息
     * @param orderId
     * @return
     */
    Map findById(Integer orderId);

    /**
     * 按照条件分页查询预约信息
     * @param queryPageBean
     * @return
     */
    PageResult findPage(QueryPageBean queryPageBean);

    /**
     * 取消预约数据(一个预约)
     * @param id
     */
    void cancelById(Integer id) throws OrderDisabledException;

    /**
     * 确认此条预约到诊
     * @param id
     * @return
     */
    Result confirmById(Integer id);

    /**
     * 取消预约数据(多个)
     * @param orderIds
     */
    void cancelByIds(Integer[] orderIds) throws OrderDisabledException;
}
